package com.moss.cloud.base.biz.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.moss.cloud.base.api.model.from.BaseFrom;
import com.moss.cloud.base.api.model.from.ConfigFrom;
import com.moss.cloud.base.api.model.from.SystemConfigFrom;
import com.moss.cloud.base.api.model.param.ConfigParam;
import com.moss.cloud.base.api.model.param.SystemConfigParam;
import com.moss.cloud.common.base.model.po.SystemConfig;

/**
 * 系统配置服务接口
 *
 * @author 瑾年
 * @date 2023年3月23日
 */
public interface ISystemConfigService extends IService<SystemConfig> {

    /**
     * 通过配置KEY查询配置值
     *
     * @param key
     * @return
     */
    SystemConfig getSystemConfig(String key);

    /**
     * 加载系统配置
     */
    void loadSystemConfig();

    /**
     * 系统参数列表
     *
     * @param systemConfigParam
     * @return
     */
    IPage<SystemConfig> getConfigs(SystemConfigParam systemConfigParam);

    /**
     * 新增或修改配置
     *
     * @param systemConfigFrom
     * @return
     */
    Long saveOrUpdate(SystemConfigFrom systemConfigFrom);

    /**
     * 删除系统参数配置
     *
     * @param baseFrom
     * @return
     */
    Long delete(BaseFrom baseFrom);

    /**
     * 更新配置值
     *
     * @param configFrom
     * @return
     */
    boolean updateValue(ConfigFrom configFrom);

    /**
     * 查看密码
     *
     * @param configParam
     * @return
     */
    String showPassword(ConfigParam configParam);
}
